package com.example.designpatterns.factory.practical;

/**
 * 数据库客户端演示类 - 展示工厂方法模式在数据库连接中的应用
 */
public class DatabaseClient {
    public static void main(String[] args) {
        // 创建查询语句
        String query = "SELECT * FROM users";
        
        // 使用MySQL工厂
        System.out.println("=== 使用MySQL数据库 ===");
        DatabaseConnectionFactory mysqlFactory = new MySQLConnectionFactory();
        mysqlFactory.executeDatabase(query);
        
        System.out.println();
        
        // 使用PostgreSQL工厂
        System.out.println("=== 使用PostgreSQL数据库 ===");
        DatabaseConnectionFactory postgresFactory = new PostgreSQLConnectionFactory();
        postgresFactory.executeDatabase(query);
        
        System.out.println();
        
        // 使用Oracle工厂
        System.out.println("=== 使用Oracle数据库 ===");
        DatabaseConnectionFactory oracleFactory = new OracleConnectionFactory();
        oracleFactory.executeDatabase(query);
        
        System.out.println();
        
        // 直接使用工厂方法获取连接并手动管理
        System.out.println("=== 手动管理连接 ===");
        DatabaseConnection oracleConnection = oracleFactory.createConnection();
        oracleConnection.connect();
        oracleConnection.executeQuery("INSERT INTO users VALUES (1, 'admin')");
        oracleConnection.close();
    }
} 